import router from '@/router'
import Store from '@/store'
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'

// 前置守卫
const whitePath = ['/login', '/404']
router.beforeEach(async(to, from, next) => {
  Nprogress.start()
  console.log('to', to)
  /**
   * 有token
   *    从 login 页面进入首页
   *    其他页面正常进入
   * 无token
   *    只能进入不需要登陆的页面
   *    如果进入的是要登陆的页面，就跳转到登录页面
   */
  if (Store.state.user.token) {
    // toLowerCase() 这个是把字符串转为小写的
    if (to.path.toLowerCase() === '/login') {
      next('/')
    } else {
      if (Store.state.user.userInfo.userId) {
        next()
      } else {
        await Store.dispatch('user/getUserInfo')
        next()
      }
    }
  } else {
    if (whitePath.includes(to.path.toLowerCase())) {
      next()
    } else {
      next('/login')
    }
  }
  Nprogress.done()
})
// 后置守卫
router.afterEach(() => {
  console.log('afterEach')
  Nprogress.done()
})
